class Circle implements Cloneable {
    Point p;
    int r;

    public Circle(Point p, int r) {
        this.p = p;
        this.r = r;
    }

    @Override
    protected Circle clone() {
        Circle c = null;
        try {
            c = (Circle) super.clone();
            c.p = this.p.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return c;
    }
}

class Point implements Cloneable {
    int x;
    int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    @Override
    protected Point clone() {
        try {
            return (Point) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }
}

public class Test {
    public static void main(String[] args) {
        Point p = new Point(1, 1);
        Circle c = new Circle(p, 1);
        Circle c2 = c.clone();

        // 修改原对象的属性
        c.p.x = 2;
        c.r = 2;

        // 打印原对象和克隆对象的属性
        System.out.println("原对象：");
        System.out.println("Center: (" + c.p.x + ", " + c.p.y + ")");
        System.out.println("Radius: " + c.r);

        System.out.println("克隆对象：");
        System.out.println("Center: (" + c2.p.x + ", " + c2.p.y + ")");
        System.out.println("Radius: " + c2.r);
    }
}
